Simplifica o desenvolvimento de software e a manutenção, providenciando os seguintes conceitos:
Que na programação orientada a objetos (POO) são equivalentes aos atributos e métodos.
São as características, definidas como variáveis do objeto.
São as ações, definidas como métodos* do objeto.
__
| Objeto | Atributos | Métodos |
|---|---|---|
| pessoa | nome, idade, genero | falar, andar |
| carro | matricula, marca | acelerar, travar, buzinar |
| cão | nome, raça | latir, correr |
__ <font color="#a5a5a5"><sup>*</sup> Em linguagem C são conhecidas como funções.</font>
Ou seja, são instâncias das classes.
Dois objetos diferentes da mesma classe, podem possuir valores diferentes para os seus atributos e consequentemente apresentar estados internos diferentes.
Para que um objeto seja de uma determinada classe, terá obrigatoriamente que respeitar as especificações da classe.
Pessoa__
Classe Pessoa |
Objeto Pessoa1 |
Objeto Pessoa2 |
|---|---|---|
Atributo nome |
Maria | João |
Atributo idade |
15 | 25 |
Atributo genero |
F | M |
__
Pessoa1 e Pessoa2 são instâncias da classe Pessoa porque respeitam as especificações desta classeCódigo exemplo da classe Pessoa
Código exemplo dos métodos da classe Pessoa
newA sua única função é criar uma instância da classe, um objeto.
Com o objetivo de controlar o tipo de acesso às classes, atributos e métodos.
public: as classes, atributos e métodos são visíveis a partir de qualquer classe.package: as classes, atributos e métodos são visíveis em classes do mesmo pacote da classe onde foram definidas, mas não nas suas subclasses.protected: as classes, atributos e métodos são visíveis na classe onde foram definidos e as suas subclasses, independentemente do pacote onde estas últimas se encontram.private: as classes, atributos e métodos são visíveis apenas dentro da mesma classe.Os getter e os setter são responsáveis por fornecer meios para aceder ao estado de um objeto, isto é, obter e modificar os valores dos atributos de um objeto.
Método que vai buscar o valor do atributo às nossas classes
getIdade()is.isIdade()Método que coloca valores dentro do atributo
setIdade(int idade);Possibilita a reutilização de código.
-> A classe carro é uma superclasse
-> carro possui os atributos e métodos comuns a todos os objetos carro
-> Cada uma das sub classes possuem atributos e métodos específicos de cada uma delas
Exemplo da superclasse carro
Exemplo da subclasse citadino
Exemplo da subclass familiar
__
citadino, familiar, e SUV herdem as características da superclasse Carro é preciso usar a palavra reservada extends.Em Java é utilizado o método overloading e o método overriding para obter o polimorfismo.
Em Java, para obter abstração é necessário usar uma classe e interface abstratas.
enquanto o programa Java é executado.
-> Local
-> Global
-> Estática
-> É declarada e usada dentro do método
-> Não pode ser definida como static
-> É declarada dentro da classe, fora dos métodos
-> Não pode ser definida como static
-> Não pode ser local
-> A alocação na memória acontece apenas uma vez, enquanto a classe é carregada em memória
| Data Type | Default Value | Default size | Value | Syntax |
|---|---|---|---|---|
| boolean | false | 1 bit | true, false | Boolean one = false |
| char | '\u0000' | 2 byte | 0 -> 65.535 | char letterA = 'A' |
| byte | 0 | 1 byt | -128 -> 127 | byte a = 10, byte b = -20 |
| short | 0 | 2 byte | -32.768 -> 32.7 | short s = 10000, short r = -5000 |
| int | 0 | 4 byte | -2.(...).648 -> 2.(...).64 | int a = 100000, int b = -200000 |
| long | 0L | 8 byte | -9.(...).808 -> 9.(...).807 | long a = 100000L, long b = -200000L |
| float | 0.0f | 4 byte | Ilimitado | float f1 = 234.5f |
| double | 0.0d | 8 byte | Ilimitado | double d1 = 12.3 |
Se não se colocar a privacidade antes do (tipo), por default a variável ficará public
Quando definimos um objeto num programa orientado a objetos, implementamos todo o comportamento desse objeto em um ou mais métodos.
[modificador] tipo_retorno identificador ([argumentos])
Pode ser:
void.return é utilizado para passar o valor requerido de volta para quem chamou o método.Quando este comando é encontrado, o método termina imediatamente a sua execução.
-> Quando é passado na chamada do método, uma cópia deste valor é criada e atribuída ao argumento do método. Se o método alterar este valor, só será afectada nesse método.
-> Aqui, é passada uma referência ao objeto original, ao invés de uma cópia do objeto. Qualquer alteração, afetará o objeto original.
Uma classe que não possui um método main não pode ser “executada” pois não representa um programa em Java. Ela será sim, utilizada como classe utilitária para a construção de outras classes ou mesmo de um programa.
-> Caso não tenha argumentos, é necessário colocar os parênteses vazios tanto na definição como na chamada do método.
-> Assinatura do método: o nome do método acrescido dos seus parâmetros.
-> Cada argumento deve ser declarado especificando o tipo e o nome.
-> Caso seja mais que um argumento, cada declaração deve estar separada por vírgula.
classPalavra reservada que é usada para declarar um classe em java.
publicPalavra reservada que é um modificador de acesso que representa visibilidade. Significa que é visível para todos.
staticÉ uma palavra reservada. Se nós declararmos algum método como static, é conhecido como método estático.
Não é necessário criar um objeto para invocar o método estático. Por isso, economiza memória.
voidÉ um tipo de retorno de método. Significa que não retorna nenhum valor.
mainRepresenta o ponto de início do programa.
String args[]É usado para argumento de linha de comando.
System.out.println()É usada imprimir declarações.
-> System é uma class
-> out é o objeto da classe PrintStream
-> print() é o método da classe PrintStream
-> Primitivos
-> Não primitivos
| Construtor | Descrição |
|---|---|
JPanel() |
Constrói um painel |
JPanel(LayoutManager layout) |
Constrói um painel associado a um determinado gestor de layout |
| Construtor | Descrição |
|---|---|
JFrame() |
Constrói janela sem título |
JFrame(StringTítulo) |
Constrói uma janela com o título indicado no parâmetro |
| Construtor | Descrição |
|---|---|
JLable() |
Constrói uma label sem título |
JLable(String Texto) |
Constrói uma label com o texto indicado no parâmetro |
JLable(String texto, int alinhamentoHorizontal |
Constrói uma label com o texto e alinhamentos indicados |
JLable(Icon icone) |
Constrói uma label com a imagem indicada no parâmetro |
JLable(String texto, Icon icone, alinhamentoHorizontal) |
Constrói uma label com texto e imagem com o alinhamento indicado |
Tipos de alinhamento da label (alinhamentoHorizontal):
Constantes (definidas na Swing Constantes)
0 |
CENTER |
2 |
LEFT |
4 |
RIGHT |
10 |
LEADING |
11 |
TRAILING |
| Construtor | Descrição |
|---|---|
JTextField() |
Constrói um campo de texto |
JTextField(int colunas) |
Constrói um campo de texto com o nº de colunas indicado |
JTextField(String texto) |
Constrói um campo de texto com o texto indicado |
JTextField(String texto, int colunas |
Constrói um campo de texto com o texto e as colunas indicadas. As colunas indicam a largura do campo |
| Construtor | Descrição |
|---|---|
JTextArea() |
Constrói uma área de texto com dimensão 0 |
JTextArea(String texto) |
Constrói uma área de texto com o texto indicado no parâmetro |
JTextArea(int linhas, int colunas) |
Constrói uma área de texto com o nº de linhas e colunas nos parâmetros |
JTextArea(String texto, int linhas, int colunas |
Constrói uma área de textp com o nº de linhas, colunas e texto indicado no parâmetro |
| Construtor | Descrição |
|---|---|
JButton() |
Constrói um botão sem texto |
JButton(String texto) |
Constrói um botão com o texto no parâmetro |
JButton(String texto, icon icone |
Constrói um botão com o texto e a imagem indicada no parâmetro |
JButton(icon icone) |
Constrói um botão com uma imagem indicada no parâmetro |
| Construtor | Descrição |
|---|---|
JComboBox |
Constrói uma caixa de seleção vazia |
JComboBox(Objeto[] itens) |
Constrói uma caixa de seleção com itens contidos no array indicado no parâmetro |
JComboBox(Vetor<?> itens) |
Constrói uma caixa de seleção com itens contidos na coleção do tipo vetor indicado no parâmetro |
JComboBox(ComboBoxModel cbm |
Constrói uma caixa de seleção que utiliza o modelo passado como parâmetro. Utilizado para, por exemplo, listar os dados de um campo de uma base de dados |
| Construtor | Descrição |
|---|---|
JCheckBox() |
Constrói uma caixa de opção sem qualquer texto ou imagem |
JCheckBox(String texto) |
Constrói uma caixa de opção com o texto indicado no parâmetro |
JCheckBox(String texto, boolean estado) |
Constrói uma caixa de opção associada ao texto e com o estado indicado no parâmetro. Se true está selecionado, se false não está selecionado. |
JCheckBox(Icon icone, boolean estado) |
|
JCheckBox(String texto, Icon icone) |
|
JCheckBox(String texto, Icon icone, boolean estado) |
| construtor | descrição |
|---|---|
JRadioButton() |
Constrói um botão de rádio sem qualquer texto ou imagem associados |
JRadioButton(String texto) |
Constrói um botão de rádio associado ao texto indicado no parâmetro |
JRadioButton(Icon icon) |
Constrói um botão de rádio associado à imagem indicada no parâmetro |
JRadioButton(String texto, boolean estado) |
Constrói um botão de rádio associado ao texto e com o estado indicado no parâmetro. Se o estado for "true", o botão está inicialmente selecionado, se for "false" não está |
JRadioButton(String texto, Icon icon) |
|
JRadioButton(String texto, Icon icon, boolean estado) |
| construtor | descrição |
|---|---|
JTable() |
Constrói uma tabela vazia |
JTable(int linhas, int colunas) |
Constrói uma tabela vazia com o número de linhas e colunas indicada nos parâmetros |
JTable(Object[][] dados, Object[][] titulos) |
Constrói uma tabela com os dados e os títulos das colunas indicados nos parâmetros |
JTable(vetor dados, vetor titulos) |
Constrói uma tabela com os dados e os títulos das colunas indicados nos parâmetros |
JTable(TableModel tm) |
Constrói de acordo com o modelo indicado no parâmetro utilizado para, por exemplo, listar dados de uma base de dados |
Mostra uma mensagem e espera até que o utilizador pressione o botão "Ok".
Exibe uma questão e aguarda até que o utilizador responda pressionando um dos botões "YES", "NO" ou "CANCEL".
Apresenta uma caixa de texto na qual o utilizador poderá inserir informação e confirmar a mesma através do botão "OK" ou cancelá-la através do botão "CANCEL"
Possibilita a introdução de elementos definidos pelo programador.
| construtor | descrição |
|---|---|
FlowLayout() |
Constrói um FlowLyaout com alinhamento ao centro e um espaçamento horizontal e vertical, entre os componentes, de 5 unidades |
FlowLayout(int alinhamento) |
Constrói um FlowLayout com o alinhamento especificado no parâmetro e um espaçamento horizontal e vertical, entre os componentes, de 5 unidades |
FlowLayout(int alinhamento, int hgap, int vgap) |
Constrói um FlowLayout com o alinhamento especificado no parâmetro e espaçamento horizontais e verticais, entre os componentes, especificados nos parâmetros |
LEFT(0)
CENTER(1)
RIGHT(2)
LEADING(3)
| construtor | descrição |
|---|---|
| GridLayout() | Constrói uma GridLayout com uma linha e uma coluna |
| GridLayout(int linhas, int colunas) | Constrói uma GridLayout com o número de linhas e colunas especificado nos parâmetros |
| GridLayout(int linhas, int colunas, int hgap, int vgap) | Constrói uma GridLayout com o número de linhas e colunas, e espaçamento verticais e horizontais especificado nos parâmetros |
| construtor | descrição |
|---|---|
| BorderLayout() | Constrói um BorderLayout sem qualquer espaçamento entre os componentes |
| BorderLayout(int hgap, int vgap) | Constrói um BorderLayout com o espaçamento horizontal e vertical entre os componentes especificados nos parâmetros |
O construtor BoxLayout(container contentor, int eixo) constrói um BoxLayout associado ao contentor e com a disposição dos componentes especificada nos parâmetros.
O parâmetro eixo poderá ter um dos valores definidos nas constantes do tipo inteiro:
X_AXIS(0)
Y_AXIS(1)
Estas constantes estão definidas na classe BoxLayout.
java.awt.event e javax.swing.eventjava.awt.event, javax.swing.events e java.beans.ActionEvent.ActionListener.| Evento (classe) | Descrição | Listerner (interface) |
|---|---|---|
ActionEvent |
Eventos de ação como um clique do rato sobre um botão ou o pressionar da tecla [Enter] numa caixa de texto. | ActionListener |
ItemEvent |
Eventos gerados quando um item é selecionado numa caixa de combinação, numa caixa de seleção ou num botão de rádio, por exmeplo. | ItemListener |
KeyEvent |
Eventos originados pela entrada de informação a partir do teclado. | KeyListener |
MouseEvent |
Eventos gerados pelo rato, quando, por ex., é clicado, pressionado, libertado, arrastado e movido. | MouseListener |
FocusEvent |
Eventos de foco gerados quando um componente recebe ou perde o foco. | FocusListener |
WindowEvent |
Eventos gerados pelas janelas quando etas são abertas, fechadas, maximizadas, minimizadas, etc. | WindowListener |
| Listener (interface) | Métodos |
|---|---|
| ActionListener | actionPerformed(ActionEvent ev*) |
| ItemListener | itemStateChanged(ItemEvent ev) |
| KeyListener | keyPressed(KeyEvent ev) keyReleased(KeyEvent ev) keyTyped(KeyEvent ev) |
| MouseListener | mouseEntered(MouseEvent ev) mouseExited(MouseEvent ev) mouseReleased(MouseEvent ev) mousePressed(MouseEvent ev) mouseClicked(MouseEvent ev) |
| FocusListener | focusGained(FocusEvent ev) focusLost(FocusEvent ev) |
| WindowListener | windowActivated(WindowEvent ev) windowDeactivated(WindowEvent ev) windowIconified(WindowEvent ev) windowDeiconified(WindowEvent ev) windowOpened(WindowEvent ev) windowClosed(WindowEvent ev) windowClosing(WindowEvent ev) |
Costuma ser:
eevevt
OUTPUT
hello javaOUTPUT
20OUTPUT
1010.0OUTPUT
10.510OUTPUT
130-126OUTPUT
20Que possibilita com que todos os caracteres de todas as linguagens escritas utilizadas no planeta possam ser representados em computadores.
Utilize substantivos ou frases substantivas descritivas.
Deixe maiúscula a primeira letra de cada substantivo que compõe o nome.
-> ex: MyFirstClassName
Use verbos para nome de métodos.
Faça a primeira letra do nome minúscula com cada letra inicial interna maiúscula
-> ex: getUserName()
Escolha nomes que indiquem o uso pretendido da variável.
Utilize a primeira letra do nome minúscula e a inicial das outras palavras que formam o nome maiúscula
-> ex: customerLastName
public-> O menos restritivo
-> Atributos e métodos com este modificador, podem ser acedidos por:
protected-> Atributos e métodos com este modificador, podem ser acedidos por:
private-> O mais restritivo
->Atributos e métodos com este modificador, podem ser acedidos por:
-> Atributos e métodos sem modificador, podem ser acedidos por:
É compilado por um compilador e convertido para bytecode. Este bytecode é um código independente de plataforma.
-> WORA - Write Once and Run Anywhere
Tipo dado INT em arquitetura C =/= Java
em C:
-> 32 bits -> 2 bytes de memória
-> 64 bits -> 4 bytes de memória
em Java:
-> 32 bits -> 4 bytes de memória
-> 64 bits -> 4 bytes de memória
-> Ir para a localização onde se encontra o documento
-> javac nomedocumento.java para compiilar
-> java nomedocumento.java para executar
Os parâmetros são passados para as aplicações através do vetor de strings do método main
lenghtAtravés do método length pode-se verificar o número de parâmetros passados. O acesso é feito indicando-se a posição no array, sempre iniciando em ( ).
É uma especificação que fornece um ambiente de tempo de execução no qual o bytecode pode ser executado.
Isto porque não existe fisicamente.
-> Carrega código
-> Verifica código
-> Executa código
-> Fornece ambiente de tempo de execução
-> Área de memória
-> Formato de arquivo de classe
-> Conjunto de registros
-> Pilha de garbage collector
-> Relatório de erros fatais
-> Etc.
É usado para fornecer o ambiente de tempo de execução.
É a implementação da JVM.
Existe fisicamente.
É usado para desenvolver aplicações e applets (pequenos programas) Java.
Contém o JRE + ferramentas de desenvolvimento.
Contém uma JVM privada e alguns outros recursos.
Existe fisicamente.
-> Interpretador / Carregador (java)
-> Compilador (javac)
-> Arquivador (jar)
-> Gerador de documentação (Javadoc)
-> etc
Simple.java -> Código fonte java
Simple.class -> Código fonte em bytecode
O código fonte de programas Java é armazenado em arquivos com extensão .java
-> ex: Cliente.java
Quando compilamos um arquivo fonte, será gerado um arquivo com extensão .class para cada classe definida e com o mesmo nome da classe. O arquivo .class contém o bytecode gerado com a compilação.
-> ex: Cliente.class
-> Um processador virtual
-> Interpretador: Lé o fluxo do bytecode e executa as instruções
-> Compilador JIT (Just-in-time): Compila parte do código de bytes que possuem funcionalidade semelhante ao mesmo tempo, reduzindo a quantidade de tempo necessário para a compilação.